package com.test.ddd.domain.repository;


/**
 * @author csruan
 * @Copyright
 * @Description
 * @date 2021/9/11 15:12
 */
public interface Repository<T extends Entity<ID>, ID> {
	/**
	 * 通过ID寻找Aggregate。
	 * @param id
	 * @return
	 */
	T find(ID id);

	/**
	 * 将一个Aggregate从Repository移除
	 * @param aggregate
	 */
	void remove(T aggregate);

	/**
	 * 保存一个Aggregate
	 * @param aggregate
	 */
	void save(T aggregate);
}
